Release 10.1A: OpenEdge Data Management:
DataServer for ODBC
Unsupported 4GL statements
The DataServer supplies you with complete OpenEdge functionality when accessing ODBC data sources. Nearly all 4GL language elements (statements, functions, and so forth) and Data Dictionary features work the same whether your application accesses a data source through the DataServer or an OpenEdge database.
Use the
DBRESTRICTIONSfunction to find out which OpenEdge features your ODBC data sources or specific tables in those data sources do not support. For the DataServer for ODBC,DBRESTRICTIONScan returnSETUSERID,SET–CURRENT–VALUE, andCOUNT–OF. In certain circumstances, it can return additional values:See the
DBRESTRICTIONSfunction reference entry in the OpenEdge Development: Progress 4GL Reference for information on syntax.Table 2–7 summarizes the 4GL differences between OpenEdge databases and ODBC data sources.
Table 2–7: 4GL differences for OpenEdge databases and ODBC data sources ( Progress feature ODBC data-source differenceBEGINSoperator
Abbreviated IndexUSINGoption When you use these 4GL elements to access data in an ODBC data source, you might get different results than from an OpenEdge database. Suppose, for example, that you have customers named SI and SIM and that you issue thisFINDstatement:
FIND customer WHERE name BEGINS "SI".Progress returns the customer named SI. With the DataServer, theFINDfails because theFINDstatement is ambiguous. You receive the same results when you use an abbreviated index or theUSINGoption in your query.CONTAINSoperator This operator relates to word indexing, which the DataServer does not support.COUNT–OFfunction The DataServer does not support this function.CREATEstatement Records that you create after opening a cursor might be invisible to that cursor.CURRENT–VALUEstatement The DataServer for ODBC can retrieveCURRENT–VALUEif the data source supports the OpenEdge Compatibility dictionary feature.FINDstatementsFOR EACHstatementsOPEN QUERYstatement To reduce the number of records included in the results set, qualify yourFINDstatements and queries with aWHEREclause.MATCHESfunctionBEGINSfunction The DataServer does not support using the percent (%) or underscore (_) character with theMATCHESandBEGINSfunctions. Do not use these functions with a pattern that is not an expression, but is stored in an ODBC data source.It is theoretically possible to do this with an OpenEdge database, but using this kind of criteria results in poor performance. A ProgressEXCLUSIVE-LOCKis emulated in the ODBC DataServer. A ProgressNO-LOCKcan be emulated in the ODBC database when the isolation level is set to read-uncommitted.SHARE-LOCKbehavior is data-source and isolation-level dependent. See the "Data-source record locking" section for more information.NULL ODBC data sourceNULL= Progress unknown value("?")ProgressNULL(empty string) =
one space in ODBC data source
The ODBC data source does not distinguish between a zero-length character string and a string that contains only blank spaces. Record creation In an ODBC data source, a record is created at the end of a record’s scope and not when the required index information becomes available.SETUSERIDfunction You cannot use this function to change the login name and password of an ODBC data source.
- For more information, see the "Data-source record locking" section.
|
Copyright © 2005 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095 |